package terceroclase;
import java.util.ArrayList;//libreria de un arreglo din�mico
import java.io.*;//libreria de entrada y salida


public class Principal {
	

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		//para la clase Cuadrupedo
		ArrayList<Cuadrupedo> Listacuadrupedo = new ArrayList<Cuadrupedo>();
		//Listacuadrupedo.add(new Cuadrupedo("Vaca","Rojo","Holistin","hierbas","Hechado"));
		
		//para la clase Bipedo
		
		ArrayList<Bipedo> ListaBipedo=new ArrayList<Bipedo>();
		ListaBipedo.add(new Bipedo("Gallo","Choriso","Azulejo","Granos","Parado"));
		//para leer
		Lector leer = new Lector();
		int opc;	// opcion del menu
		
		do { 	//total
			do { //menu
				muestraMenu();
				opc = leer.leerInt();
			} while (opc < 1 || opc > 6);  //menu
			switch (opc) {
			case 1: // 
				
				System.out.println("###################### INGRESANDO DATOS PARA EL ANIMAL CUADRUPEDO ##############\n");
				System.out.print("Nombre: ");
				String no = leer.leerString();
				System.out.print("Color: ");
				String co = leer.leerString();
				System.out.print("Raza: ");
				String ra = leer.leerString();
				System.out.print("Que Come: ");
				String cm=leer.leerString();
				System.out.print("Como Duerme: ");
				String du=leer.leerString();
				Listacuadrupedo.add(new Cuadrupedo(no,co,ra,cm,du));
				
				
				break;
			case 2: //
				System.out.println("###################### INGRESANDO DATOS PARA EL ANIMAL BIPEDO ##############\n");
				System.out.print("Nombre: ");
				String no1 = leer.leerString();
				System.out.print("Color: ");
				String co1 = leer.leerString();
				System.out.print("Raza: ");
				String ra1 = leer.leerString();
				System.out.print("Que Come: ");
				String cm1=leer.leerString();
				System.out.print("Como Duerme: ");
				String du1=leer.leerString();
				ListaBipedo.add(new Bipedo(no1,co1,ra1,cm1,du1));
				
				break;
			case 3: //Buscar				
				System.out.println("###################### BUSCANDO LISTA ##############\n");
				System.out.print("Ingrese los datos para buscar:"+"\nNombre:");
				String n1 = leer.leerString();
				System.out.print("Color:");
				String c1 = leer.leerString();
				System.out.print("Raza:");
				String r1 = leer.leerString();
				int cont=0;
				for (int i = 0; i < ListaBipedo.size(); i++) {
					if (ListaBipedo.get(i).getNombre().equalsIgnoreCase(n1)&& ListaBipedo.get(i).getColor().equalsIgnoreCase(c1)&&ListaBipedo.get(i).getRaza().equalsIgnoreCase(r1)) //ignore mayusculas minusculas
						{
						cont=1;
						System.out.println("Se encontro en posicion: "+i+" :"+ListaBipedo.get(i).Comer());
					}
				}
				for (int i = 0; i < Listacuadrupedo.size(); i++) {
					if (Listacuadrupedo.get(i).getNombre().equalsIgnoreCase(n1)&&Listacuadrupedo.get(i).getColor().equalsIgnoreCase(c1)&&Listacuadrupedo.get(i).getRaza().equalsIgnoreCase(r1)) {
						cont=1;
						System.out.println("Se encontro en posicion: "+i+" :"+Listacuadrupedo.get(i).Comer());
					}
				}	
					
				
				if(ListaBipedo.size()==ListaBipedo.size()-cont){
						System.out.println("no Se encontro encontro al animal buscado..................");
				     }
					
				break;
			case 4: // Eliminar
				System.out.println("###################### ELIMINANDO LISTA ##############\n");
				System.out.print("Ingrese los datos para buscar:"+"\nNombre:");
				String n2 = leer.leerString();
				String cond="";
				int cont1=0,bi=-1,cua=-1;
				for (int i = 0; i < ListaBipedo.size(); i++) {
					if (ListaBipedo.get(i).getNombre().equalsIgnoreCase(n2)) //ignore mayusculas minusculas
						{
						cont1=1;
						bi=i;
						System.out.println("Se encontro en posicion: "+i+" :"+ListaBipedo.get(i).Comer());
						System.out.print("\n\nDesea Eliminar La Lista (si/no): ");
						 cond = leer.leerString();
					}
				}
				for (int i = 0; i < Listacuadrupedo.size(); i++) {
					if (Listacuadrupedo.get(i).getNombre().equalsIgnoreCase(n2)) {
						cont1=1;
						cua=i;
						System.out.println("Se encontro en posicion: "+i+" :"+Listacuadrupedo.get(i).Comer());
						System.out.print("\n\nDesea Eliminar La Lista (si/no): ");
						 cond = leer.leerString();
					}
				}	
					
				
				if(ListaBipedo.size()==ListaBipedo.size()-cont1){
						System.out.println("no Se encontro encontro al animal buscado..................");
				     }
			
				if ("Si".equalsIgnoreCase(cond)) {
					if (bi!=-1) {
						ListaBipedo.remove(bi);
					}
					if (cua!=-1) {
						Listacuadrupedo.remove(cua);//eliminar remove(1)
					}
					System.out.print("Se Elimino correctamente...................:\n\n");
				}
			
				
				break;
			case 5: // modificar datos
				
				System.out.println("###################### MODIFICANDO LISTA ##############\n");
				System.out.print("Ingrese los datos para buscar:"+"\nNombre:");
				String n3 = leer.leerString();
				System.out.print("Color: ");
				String c3 = leer.leerString();
				String condi="";
				int cont2=0;
				for (int i = 0; i < ListaBipedo.size(); i++) {
					if (ListaBipedo.get(i).getNombre().equalsIgnoreCase(n3)&&ListaBipedo.get(i).getColor().equalsIgnoreCase(c3)) //ignore mayusculas minusculas
						{
						cont2=1;
						System.out.println("Se encontro en posicion: "+i+" :"+ListaBipedo.get(i).Comer());
						System.out.print("\n\nQue desea modificar (nombre,color,raza,come,duerme/todo): ");
						 condi = leer.leerString();
						 if ("Nombre".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Nombre:");
							 String dato = leer.leerString();
							 ListaBipedo.get(i).setNombre(dato);
							}
						 if ("Color".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Color:");
							 String dato = leer.leerString();
							 ListaBipedo.get(i).setColor(dato);
							}
						 if ("Raza".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Raza:");
							 String dato = leer.leerString();
							 ListaBipedo.get(i).setRaza(dato);
							}
						 if ("Come".equalsIgnoreCase(condi)) {
							 System.out.print("como come:");
							 String dato = leer.leerString();
							 ListaBipedo.get(i).setCome(dato);
							}
						 if ("Duerme".equalsIgnoreCase(condi)) {
							 System.out.print("como duerme:");
							 String dato = leer.leerString();
							 ListaBipedo.get(i).setDuerme(dato);
							}
						 if ("todo".equalsIgnoreCase(condi)) {
							 System.out.print("Nombre:");
							 String dato = leer.leerString();
							 System.out.print("Color:");
							 String dato1 = leer.leerString();
							 System.out.print("Raza:");
							 String dato2 = leer.leerString();
							 System.out.print("como come:");
							 String dato3 = leer.leerString();
							 System.out.print("como duerme:");
							 String dato4 = leer.leerString();
							 ListaBipedo.get(i).setNombre(dato);
							 ListaBipedo.get(i).setColor(dato1);
							 ListaBipedo.get(i).setRaza(dato2);
							 ListaBipedo.get(i).setCome(dato3);
							 ListaBipedo.get(i).setDuerme(dato4);
							}
						 System.out.print("Se modifico correctamente...................:\n\n");
						
					}
				}
				for (int i = 0; i < Listacuadrupedo.size(); i++) {
					if (Listacuadrupedo.get(i).getNombre().equalsIgnoreCase(n3)&&Listacuadrupedo.get(i).getColor().equalsIgnoreCase(c3)) {
						cont2=1;
						System.out.println("Se encontro en posicion: "+i+" :"+Listacuadrupedo.get(i).Comer());
						System.out.print("\n\nQue desea modificar (nombre,color,raza,come,duerme/todo): ");
						 condi = leer.leerString();
						 if ("Nombre".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Nombre:");
							 String dato = leer.leerString();
							 Listacuadrupedo.get(i).setNombre(dato);
							}
						 if ("Color".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Color:");
							 String dato = leer.leerString();
							 Listacuadrupedo.get(i).setColor(dato);
							}
						 if ("Raza".equalsIgnoreCase(condi)) {
							 System.out.print("Bueno Raza:");
							 String dato = leer.leerString();
							 Listacuadrupedo.get(i).setRaza(dato);
							}
						 if ("Come".equalsIgnoreCase(condi)) {
							 System.out.print("como come:");
							 String dato = leer.leerString();
							 Listacuadrupedo.get(i).setCome(dato);
							}
						 if ("Duerme".equalsIgnoreCase(condi)) {
							 System.out.print("como duerme:");
							 String dato = leer.leerString();
							 Listacuadrupedo.get(i).setDuerme(dato);
							}
						 if ("todo".equalsIgnoreCase(condi)) {
							 System.out.print("Nombre:");
							 String dato = leer.leerString();
							 System.out.print("Color:");
							 String dato1 = leer.leerString();
							 System.out.print("Raza:");
							 String dato2 = leer.leerString();
							 System.out.print("como come:");
							 String dato3 = leer.leerString();
							 System.out.print("como duerme:");
							 String dato4 = leer.leerString();
							 Listacuadrupedo.get(i).setNombre(dato);
							 Listacuadrupedo.get(i).setColor(dato1);
							 Listacuadrupedo.get(i).setRaza(dato2);
							 Listacuadrupedo.get(i).setCome(dato3);
							 Listacuadrupedo.get(i).setDuerme(dato4);
							}
						 System.out.print("Se modifico correctamente...................\n\n:");
					}
				}	
					
				
				if(ListaBipedo.size()==ListaBipedo.size()-cont2){
						System.out.println("no Se encontro encontro al animal buscado..................");
				     }
			
				
			
				
				break;
			case 6: // MOSTRAR
				System.out.println("###################### MOSTRANDO LISTA ##############\n");
				for(int i = 0; i < Listacuadrupedo.size();i++)//contar elementos ListaEmpleados.size()
				{
					System.out.println(Listacuadrupedo.get(i).Dormir());
					System.out.println(Listacuadrupedo.get(i).Comer());
				}
				for(int i = 0; i < ListaBipedo.size();i++)//contar elementos ListaEmpleados.size()
				{
					System.out.println(ListaBipedo.get(i).Dormir());
					System.out.println(ListaBipedo.get(i).Comer());
				}
				break;
			case 7://Salir
				System.out.println ("  Hasta pronto ...");
				break;
		}
		} while (opc != 7); //total
		
		
		
		
		
		
	}
	
	public static void muestraMenu (){
		System.out.println ("\n\n\t    *** MENU ANIMAL *** ");
		System.out.println ("\t  1 ->  Agregar Cuadrupedo");
		System.out.println ("\t  2 ->  Agregar Bipedo");
		System.out.println ("\t  3 ->  Buscar Animal");
		System.out.println ("\t  4 ->  Eliminar Datos Animal");
		System.out.println ("\t  5 ->  modificar Datos animal");
		System.out.println ("\t  6 ->  Mostrar lista Animal");
		System.out.println ("\t  7 ->  Salir");
		System.out.print ("\t       Elija una Opcion: ");
	}
	
}
